home *** CD-ROM | disk | FTP | other *** search
- /* Add.c -- Modal dialog */
-
- #include <Types.h>
- #include <Quickdraw.h>
- #include <Controls.h>
- #include <Dialogs.h>
- #include <Events.h>
- #include <Lists.h>
- #include <Menus.h>
- #include <TextEdit.h>
- #include <Appearance.h>
- #include <stdlib.h>
-
- #include "ResourceDefs.h"
- #include "Miscellany.h"
- #include "ControlUtils.h"
-
- #include "Dispatcher.h"
- #include "Add.h"
-
- #define kOKButton 1
- #define kCancelButton 2
- #define kLogoImage 3
- #define kAddReminderForLabel 4
- #define kDateLabel 5
- #define kDate2Field 6
- #define kTimeLabel 7
- #define kTime2Field 8
- #define kMessageLabel 9
- #define kMessage2Field 10
- #define kWhenRemindingLabel 11
- #define kDisplayIconCheck 12
- #define kDisplayAlertCheck 13
- #define kPlaySoundCheck 14
- #define kSoundPopupPopup 15
-
-
- /*----------*/
- Boolean GetAdd (
- DReminder* ioData)
- {
- Boolean result = false;
- Add* dialog = NewAdd ();
-
- result = AMDialog_RunModal ((AMDialog*)dialog, DLOG_Add, (AMSignaler*)ioData);
-
- DeleteAdd (dialog);
-
- return result;
- }
-
- //----------
- Add* NewAdd ()
- {
- Add* dialog;
-
- dialog = (Add*)malloc (sizeof (Add));
- Add_Init (dialog);
- SetClassID (dialog, classAdd);
-
- return dialog;
- }
-
- //----------
- void DeleteAdd (
- Add* dialog)
- {
- Add_Free (dialog);
- free (dialog);
- }
-
- //----------
- void Add_Init (
- Add* self)
- {
- AMDialog_Init ((AMDialog*)self);
- }
-
- //----------
- void Add_Free (
- Add* self)
- {
- AMDialog_Free ((AMDialog*)self);
- }
-
- //----------
- void Add_FinishMake (
- Add* self)
- {
- self->mOKHandle = AMDialog_GetControlItem ((AMDialog*)self, kOKButton);
- SetDefaultState (self->mOKHandle, true);
- SetDialogDefaultItem (((AMDialog*)self)->mDialog, kOKButton);
- self->mCancelHandle = AMDialog_GetControlItem ((AMDialog*)self, kCancelButton);
- SetDialogCancelItem (((AMDialog*)self)->mDialog, kCancelButton);
- self->mDate2Handle = AMDialog_GetControlItem ((AMDialog*)self, kDate2Field);
- self->mTime2Handle = AMDialog_GetControlItem ((AMDialog*)self, kTime2Field);
- self->mMessage2Handle = AMDialog_GetControlItem ((AMDialog*)self, kMessage2Field);
- self->mDisplayIconHandle = AMDialog_GetControlItem ((AMDialog*)self, kDisplayIconCheck);
- self->mDisplayAlertHandle = AMDialog_GetControlItem ((AMDialog*)self, kDisplayAlertCheck);
- self->mPlaySoundHandle = AMDialog_GetControlItem ((AMDialog*)self, kPlaySoundCheck);
- self->mSoundPopupHandle = AMDialog_GetControlItem ((AMDialog*)self, kSoundPopupPopup);
- }
-
- //----------
- void Add_ConnectToData (
- Add* self,
- AMSignaler* inData)
- {
- AMDialog_ConnectToData ((AMDialog*)self, inData);
- self->mData = (DReminder*) inData;
-
- SetClockDateTime (self->mDate2Handle, GetDateAndTime (self->mData));
- SetClockDateTime (self->mTime2Handle, GetDateAndTime (self->mData));
- SetControlTextStr (self->mMessage2Handle, GetMessage (self->mData));
- SetControlValue (self->mDisplayIconHandle, GetShowIcon (self->mData));
- SetControlValue (self->mDisplayAlertHandle, GetShowAlert (self->mData));
- SetControlValue (self->mPlaySoundHandle, GetPlaySound (self->mData));
- SetControlValue (self->mSoundPopupHandle, GetSoundIndex (self->mData));
- }
-
- //----------
- void Add_DoItem (
- Add* self,
- SInt16 inItemHit)
- {
- switch (inItemHit) {
- case kOKButton:
- AMDialog_SetResult ((AMDialog*)self, true);
- break;
- case kCancelButton:
- AMDialog_SetResult ((AMDialog*)self, false);
- break;
- case kDate2Field:
- SetDateAndTime (self->mData, GetClockDateTime (self->mDate2Handle));
- break;
- case kTime2Field:
- SetDateAndTime (self->mData, GetClockDateTime (self->mTime2Handle));
- break;
- case kMessage2Field:
- SetMessageHandle (self->mData, GetEditTextChars (self->mMessage2Handle));
- break;
- case kDisplayIconCheck:
- SetShowIcon (self->mData, ToggleCheckbox (self->mDisplayIconHandle));
- break;
- case kDisplayAlertCheck:
- SetShowAlert (self->mData, ToggleCheckbox (self->mDisplayAlertHandle));
- break;
- case kPlaySoundCheck:
- SetPlaySound (self->mData, ToggleCheckbox (self->mPlaySoundHandle));
- break;
- case kSoundPopupPopup:
- SetSoundIndex (self->mData, GetControlValue (self->mSoundPopupHandle));
- break;
-
- } // switch
- }
-
- //----------
- void Add_DataChanged (
- Add* self,
- long inDataID)
- {
- if (inDataID == idDateAndTime) {
- SetClockDateTime (self->mDate2Handle, GetDateAndTime (self->mData));
- }
- if (inDataID == idDateAndTime) {
- SetClockDateTime (self->mTime2Handle, GetDateAndTime (self->mData));
- }
- if (inDataID == idMessage) {
- SetControlTextStr (self->mMessage2Handle, GetMessage (self->mData));
- }
- if (inDataID == idShowIcon) {
- SetControlValue (self->mDisplayIconHandle, GetShowIcon (self->mData));
- }
- if (inDataID == idShowAlert) {
- SetControlValue (self->mDisplayAlertHandle, GetShowAlert (self->mData));
- }
- if (inDataID == idPlaySound) {
- SetControlValue (self->mPlaySoundHandle, GetPlaySound (self->mData));
- }
- if (inDataID == idSoundIndex) {
- SetControlValue (self->mSoundPopupHandle, GetSoundIndex (self->mData));
- }
- }
-
- //----------
- Boolean Add_Filter (
- Add* self,
- EventRecord *ioEvent,
- DialogItemIndex *outItemHit)
- {
- return AMDialog_Filter ((AMDialog*)self, ioEvent, outItemHit);
- }
-